/**
 * TetisDB
 *
 * Classe principal de manutenção do fluxo IO
 */
package br.com.tetisdb.io;

import br.com.tetisdb.lang.TetisObject;
import br.com.tetisdb.util.TetisUtil;
import java.io.File;
import java.io.IOException;

public class IOManager extends TetisObject {
    //instancia de IOManager
    private static IOManager ioManager = null;
    
    static {
        ioManager = new IOManager();
    }
    
    private IOManager() {
    }
    
    public static IOManager getInstance() {
        return ioManager;
    }
    
    /**
     * Cria um determinado path.
     *
     * @param path Caminho do path a ser criado.
     */
    public static void createPath(String path) throws IOException {
        if(!TetisUtil.stringIsValid(path)) {
            throw new IOException("Nome de diretorio invalido! Nome: "+path);
        }
        
        File file = new File(path);
        
        if (!file.exists()) {
            tetisLogger.debug("Criando o PATH: "+path);
            file.mkdirs();
        }
    }
    
    /**
     * Apaga um determinado path
     *
     * @param path Caminho a ser apagado.
     */
    public static void destroyPath(String path) throws Exception {
        File file = new File(path);
        
        if (file.exists()) {
            tetisLogger.debug("Apagando o PATH: "+path);
            file.delete();
        }
    }
    
}
